package com.enjoyor.soa.traffic.frame.logger;

import com.enjoyor.soa.traffic.frame.domain.PubLogNorm;
import com.enjoyor.soa.traffic.frame.security.bean.pojo.UserPojo;
import com.enjoyor.soa.traffic.frame.support.mybatis.mapper.IBaseMapper;
import com.enjoyor.soa.traffic.util.enums.log.LogInfoDic;

// 20190103 日志采集规范，新增多个字段
public interface IPubLogNormMapper extends IBaseMapper<PubLogNorm> {
    /*
     * transType: 可选填： 1.select 2.insert 3.update 4.delete 5.export
     */
    public PubLogNorm getBaseLogInfo(String sysName, String logModular, String token, String transType);

    public PubLogNorm getBaseLogInfo(String sysName, String logModular, String transType);

    /**
     * @param sysName       系统名称
     * @param logModular    模块名称
     * @param token         令牌
     * @param transType     操作类型
     * @param content       日志内容
     * @param result        操作结果
     * @param contentBefore 操作前内容
     * @param contentAfter  操作后内容
     */
    public void saveLogInfo(String sysName, String logModular, String token, LogInfoDic.LOG_TRANSTYPE_ENUM transType, String content, String result,
                                  String contentBefore, String contentAfter);
    
    /**
     * @param sysName       系统名称
     * @param logModular    模块名称
     * @param user          用户对象
     * @param transType     操作类型
     * @param content       日志内容
     * @param result        操作结果
     * @param contentBefore 操作前内容
     * @param contentAfter  操作后内容
     */
    public void saveLogInfo(String sysName, String logModular, UserPojo user, LogInfoDic.LOG_TRANSTYPE_ENUM transType, String content, String result,
                                  String contentBefore, String contentAfter);

    public void saveNoramlLogInfo(PubLogNorm log);
    public PubLogNorm getLogInfo(String sysName,String logModular, Object userDto, String transType);
}
